Escolha 3 geradores apresentados em sala. Realize o seguinte teste: considere um arranjo de 20 números diferentes. Usando o gerador, permute dois dos números. Repita 200 vezes. Verifique se algum número aparece na mesma posição que iniciou. Uma desarrumação completa ocorre quando nenhum número é mantido em sua posição original. Repita todo o processo vezes e contabilize o número de desarrumações completas . Anote . Para extrair uma boa estatística da média e desvio de , repita vezes (amostras), para cada gerador, e faça um gráfico de vs. número de amostras, com as respectivas barras de erro.
Ainda com os três geradores, realize o seguinte teste: divida o plano cartesiano em células. Gere dois números reais entre zero e um, e . Verifique em que célula o ponto deve ocupar. Após sorteios, anote o número de células que nunca foram ocupadas e , de células ocupadas apenas uma vez. Anote e . Como no item anterior, repita para amostras e faça o gráfico vs. número de amostras, com as respectivas barras de erro. Compare o resultado com o anterior.
Modifique o programa anterior e faça mais sorteios que o número de células. Para cada gerador, obtenha a dispersão no número de pontos em cada caixa. Obtenha a entropia em função do tempo, para cada 10 sorteios de pontos (, onde é a probabilidade de ocupação da caixa ). Considere o primeiro tempo como o primeiro sorteio, isto é, apenas uma caixa ocupada.
Utilize o método de Monte Carlo para calcular o volume de uma hiperesfera de raio 1, de duas a quinze dimensões. Repita para várias amostras para ter uma boa determinação da média e desvio.
Verifique a lei de Einstein para o movimento Browniano em 1,2 e 3 dimensões. Sorteie caminhantes e anote a dispersão em função do tempo. Repita para três valores de diferentes.
Gere números aleatórios segundo a distribuição normal, usando Box e Muller. Gere números aleatórios segundo a Lorentziana e compare com o resultado esperado (obtenha o ). Compare os resultados e o tempo de computação para o método da inversão e da rejeição.
Gere pontos na superfície de esfera, sorteando e , como distribuições uniformes. Plote o gráfico 3D dos pontos sorteados e convença-se que isto não gera pontos uniformemente na superfície. Corrija propondo um algoritmo para gerar pontos uniformemente espalhados.
Gere três números e , segundo a distribuição normal. A partir deles, crie um vetor unitário. Faça um gráfico 3D, para vários vetores e verifique visualmente se isto é uma distribuição uniforme na superfície da esfera.
Faça um programa para a evolução dos automatas celulares 1D, vizinhança 3. A regra deve ser um dado de entrada e os estados devem ser armazenados em bits. A informação requerida é o número de sítios ativos em função do tempo. Apresente os resultados para três regras que consigam manter um número finito de sítios ativos.
Implemente o automata celular Q2R em uma rede quadrada. Faça um programa auxiliar para gerar a configuração inicial com energia escolhida, sempre armazenando os estados dos sítios em bits. Obtenha a média da magnetização em função da energia e confirme (mesmo sem muita precisão) a ocorrência de uma transição de fase. Repita para várias amostras para determinar a magnetização e sua dispersão em função da energia. O programa será utilizado nas listas posteriores. Se quiser adiantar, programe também em três dimensões, utilizando a implementação mais eficiente (em 3D, o spin é invertido se tiver três vizinhos paralelos).
Discussão